// 1. 管理数据流 createStore
// 2. 模块化 分仓 管理数据 多个reducer
// 3. 修改数据
//  dispatch({action:})
// 重新计算 reducer
// index.js 返回 仓库单例
import { createStore, compose, applyMiddleware } from 'redux'
// 组件 - 中间件redux-thunk - 数据
// compose 合并中间件
import thunk from 'redux-thunk' // 支持 异步数据管理（接口请求）
import reducer from './reducer'

const composeEnhancers =
    window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose;
const store = createStore(reducer,
    // 组合函数
    // devtool
    composeEnhancers(
        // 异步 thunk
        applyMiddleware(thunk)
    )
)

export default store;